﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Devart.Data.PostgreSql;

namespace Sistema_financiero.ABM
{
    public partial class frmABMFeriados : Form
    {
        string idSeleccionado;
        bool modificacion;

        public frmABMFeriados()
        {
            InitializeComponent();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            btnNuevo.Visible = false;
            btnNAceptar.Visible = true;
            btnNCancelar.Visible = true;
            rbIngresar.Visible = true;
            rbBuscar.Visible = true;
            mtbx_Fecha_nacimiento.Visible = true;
            dateTimePicker3.Visible = true;
        }

        private void btnNAceptar_Click(object sender, EventArgs e)
        {
            if (rbIngresar.Checked)
            {
                if (modificacion)
                {

                    string sql = "UPDATE \"Feriado\" SET fecha_feriado = '" + mtbx_Fecha_nacimiento.Text + "' WHERE fecha_feriado = '" + idSeleccionado+"'";
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                }
                else
                {
                    string sql = "INSERT INTO \"Feriado\" VALUES ( '" + mtbx_Fecha_nacimiento.Text + "' )";
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                }
                btnNuevo.Visible = true;
                btnNAceptar.Visible = false;
                btnNCancelar.Visible = false;
                rbIngresar.Visible = false;
                rbBuscar.Visible = false;
                mtbx_Fecha_nacimiento.Visible = false;
                dateTimePicker3.Visible = false;
                Busqueda();

            }
            else
            {
                if (modificacion)
                {
                    string sql = "UPDATE \"Feriado\" SET fecha_feriado = '" + dateTimePicker3.Value + "' WHERE fecha_feriado = '" + idSeleccionado +"'";
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                }
                else
                {
                    string sql = "INSERT INTO \"Feriado\" VALUES ( '" + dateTimePicker3.Value + "')";
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                }
                btnNuevo.Visible = true;
                btnNAceptar.Visible = false;
                btnNCancelar.Visible = false;
                rbIngresar.Visible = false;
                rbBuscar.Visible = false;
                mtbx_Fecha_nacimiento.Visible = false;
                dateTimePicker3.Visible = false;
                Busqueda();
            }
        }

        private void btnNCancelar_Click(object sender, EventArgs e)
        {
            btnNuevo.Visible = true;
            btnNAceptar.Visible = false;
            btnNCancelar.Visible = false;
            rbIngresar.Visible = false;
            rbBuscar.Visible = false;
            mtbx_Fecha_nacimiento.Visible = false;
            dateTimePicker3.Visible = false;
            modificacion = false;
        }

        private void frmABMCondicionSellado_Load(object sender, EventArgs e)
        {
            rbIngresar.Visible = false;
            rbBuscar.Visible = false;
            mtbx_Fecha_nacimiento.Visible = false;
            dateTimePicker3.Visible = false;
            btnNAceptar.Visible = false;
            btnNCancelar.Visible = false;
            Busqueda();
            modificacion = false;
            rbIngresar.Checked = true;
            checkBox1.Checked = false;
            dateTimePicker1.Enabled = false;
            dateTimePicker2.Enabled = false;
        }
        private void Busqueda()
        {
            this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
            PgSqlDataAdapter adpt;
            if (checkBox1.Checked)
            {
                DateTime fecha_min = new DateTime();
                DateTime fecha_max = new DateTime();
                fecha_min = dateTimePicker1.Value;
                fecha_max = dateTimePicker2.Value;
                adpt = new PgSqlDataAdapter("SELECT * FROM \"Feriado\" WHERE fecha_feriado BETWEEN '"+fecha_min +"' AND '" +fecha_max+"'", frm_Menu.conexion);
            }
            else
            {
                adpt = new PgSqlDataAdapter("SELECT * FROM \"Feriado\"", frm_Menu.conexion);
            }
            DataSet dts = new DataSet();

            adpt.Fill(dts, "nombreTabla");
            dgv_Buscar.DataSource = dts.Tables["nombreTabla"];

            dgv_Buscar.Refresh();

            this.Cursor = System.Windows.Forms.Cursors.Default;
        }

        private void btnVolver_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnQuitar_Click(object sender, EventArgs e)
        {
            if (dgv_Buscar.RowCount != 0)
            {
                string id = Convert.ToString(dgv_Buscar[0, dgv_Buscar.CurrentRow.Index].Value);

                DialogResult resultado = MessageBox.Show("¿Seguro desea elminar?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (resultado == DialogResult.Yes)
                {
                    string sql = "DELETE FROM \"Feriado\" WHERE fecha_feriado = '" + id+"'";
                    PgSqlCommand comando = new PgSqlCommand(sql, frm_Menu.miConexion);
                    comando.ExecuteNonQuery();
                    Busqueda();
                }

            }

        }

        private void tbx_Descripcion_TextChanged(object sender, EventArgs e)
        {
            Busqueda();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            if (dgv_Buscar.RowCount != 0)
            {
                idSeleccionado = Convert.ToString(dgv_Buscar[0, dgv_Buscar.CurrentRow.Index].Value);
                mtbx_Fecha_nacimiento.Text = Convert.ToString(dgv_Buscar[0, dgv_Buscar.CurrentRow.Index].Value);
                modificacion = true;
                btnNuevo.Visible = false;
                btnNAceptar.Visible = true;
                btnNCancelar.Visible = true;
                rbIngresar.Visible = true;
                rbBuscar.Visible = true;
                mtbx_Fecha_nacimiento.Visible = true;
                dateTimePicker3.Visible = true;
            }
        }

        private void mtbx_Fecha_nacimiento_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
        {
            Control.Textbox_restricciones.Validar_fecha(mtbx_Fecha_nacimiento, e);
        }

        private void rbIngresar_CheckedChanged(object sender, EventArgs e)
        {
            mtbx_Fecha_nacimiento.Enabled = true;
            dateTimePicker3.Enabled = false;
        }

        private void rbBuscar_CheckedChanged(object sender, EventArgs e)
        {
            dateTimePicker3.Enabled = true;
            mtbx_Fecha_nacimiento.Enabled = false;
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
            {
                dateTimePicker1.Enabled = true;
                dateTimePicker2.Enabled = true;
            }
            else
            {
                dateTimePicker1.Enabled = false;
                dateTimePicker2.Enabled = false;
            }
            Busqueda();
        }
    }
}
